[% setvar title The Perl 6 Summary for the week ending 20030601 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the week ending 20030601'></a><h1>The Perl 6 Summary for the week ending 20030601</h1>
<p>Another Monday, another Perl 6 Summary. Does this man never take a
holiday? (Yes, but only to go to Perl conferences this year, how did
that happen?)</p>
<p>We start with the internals list as usual.</p>
<a name='More on timely destruction'></a><h2>More on timely destruction</h2>
<p>The discussion of how to get timely destruction with Parrot's Garbage
Collection system continued. Last week Dan announced that, for
languages that make commitments to call destructors as soon as a thing
goes out of scope, there would be a set of helpful ops to allow
languages to trigger conditional DOD (Dead Object Detection) runs at
appropriate times. People weren't desperately keen on the performance
hit that this entails (though the performance hit involved with
reference counting is pretty substantial...) but we didn't manage to
come up with a better solution to the issue.</p>
<p><a href='http://groups.google.com/groups?threadm=200305251047.h4PAl4k24911@thu8.leo.home' target='_blank'>groups.google.com</a></p>
<a name='Bryan C. Warnock, patchmonster of the week'></a><h2>Bryan C. Warnock, patchmonster of the week</h2>
<p>Bryan C. Warnock seems to be attempting to outdo Leo T&ouml;tsch in
the patchmonster stakes this week. He put in a miscellany of patches
dealing with the Perl based assembler, opcode sizes, debugging flags
and probably others. Most of them were applied with alacrity.</p>
<a name='The Perl 6 Essentials book'></a><h2>The Perl 6 Essentials book</h2>
<p>Dan Sugalski gave a rundown of how the Perl 6 Essentials book came
about, what's in it and all that jazz. He started by apologizing for
not mentioning it before, but he thought he had. This led Clint Pierce
to wonder if there was something up with Dan's Garbage Collection
system. The existence of the book probably goes some way to explaining
Leo T&ouml;tsch's relative silence over the last few weeks. Nicholas
Clark wondered if it explains why Parrot doesn't have objects
yet. Brent Dax wondered when it would be available (by OSCON this year
apparently).</p>
<p><a href='http://groups.google.com/groups?threadm=a05210638baf81088c209@' target='_blank'>groups.google.com</a>[63.120.19.221]</p>
<a name='IMCC, PASM and constants/macros'></a><h2>IMCC, PASM and constants/macros</h2>
<p>Clint Pierce had some big headaches with moving his BASIC interpreter
over to IMCC owing to problems with <code>.constant</code> which is legal for
the assembler, but not for IMCC. Leo T&ouml;tsch pointed Clint at
IMCC's <code>.const</code> operator. Bryan Warnock wondered if IMCC and the
assembler's syntax couldn't be unified. Leo noted that it wasn't quite
that straightforward because <code>.constant</code> declares an untyped
constant, but <code>.const</code> requires a type as well. It turns out that
<code>.const</code> wasn't quite what Clint needed, so Leo pointed him at
<code>.sym</code> and <code>.local</code> which do seem to do what he needs.</p>
<p><a href='http://groups.google.com/groups?threadm=5.1.0.14.2.20030526183737.027afa68@mail.geeksalad.org' target='_blank'>groups.google.com</a></p>
<a name='3-arg opens'></a><h2>3-arg opens</h2>
<p>Bryan Warnock wondered if</p>
<pre>    open I3, &quot;temp.file&quot;, &quot;r&quot;</pre>
<p>was valid code. Answer, no, the right way to do it is the Perlish
<code>open I3, &quot;temp.file&quot;, &quot;&lt;&quot;</code>. J&uuml;rgen B&ouml;mmels promised
more and better documentation for the Parrot IO system. Eventually.</p>
<p><a href='http://groups.google.com/groups?threadm=1053992856.2210.330.camel@wakko' target='_blank'>groups.google.com</a></p>
<a name='Smaller PMCs'></a><h2>Smaller PMCs</h2>
<p>Leo T&ouml;tsch's work on the new PMC layout continues apace. I'm
afraid I don't quite understand what's going on in this area, which
does make it rather tricky to summarize things. It seems to have a
good deal to do with memory allocation and garbage collection... Leo
thinks that it's the right thing, but there seem to be issues involved
with good ways of allocating zeroed memory.</p>
<p><a href='http://groups.google.com/groups?threadm=3ECF439A.2080005@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='An experimental Wiki for parrot development'></a><h2>An experimental Wiki for parrot development</h2>
<p>Mitchell N Charity has put up an experimental Wiki for Parrot and
primed it with a few things. St&eacute;phane Payrard pointed out that
it's rather hard to make a WikiWord from, for example, PMC. (10 points
to the first person to email <a href='mailto:p6summarizer@bofh.org.uk'>p6summarizer@bofh.org.uk</a> with the
expansion of PMC).</p>
<p><a href='http://groups.google.com/groups?threadm=200305272235.h4RMZCn02786@vendian.org' target='_blank'>groups.google.com</a></p>
<a name='IMCC packfile bug'></a><h2>IMCC packfile bug</h2>
<p>While toying with <b><i>pbc2c.pl</i></b>, Luke Palmer discovered that it doesn't
want to play with IMCC generated .pbc files. Apparently this is
because we currently have two bytecode file formats. Leo T&ouml;tsch
thought the problem lay with <b><i>assemble.pl</i></b> which is old and slow and
doesn't produce 'proper' parrot bytecode. Leo also thought that the
way <b><i>pbc2c.pl</i></b> worked wasn't actually any use. Dan reckoned the time
had come to ditch <b><i>assemble.pl</i></b> too, and reckoned there was a case
for renaming IMCC as <b><i>parrot</i></b> since it can run either .pbc or
assembly files. Leo liked the idea, but is concerned about the state
of the Tinderbox.</p>
<p><a href='http://groups.google.com/groups?threadm=rt-22352-58313.14.7340141747095@rt.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Method Calling'></a><h2>Method Calling</h2>
<p>Dan tantalized all those waiting eagerly for objects in Parrot by
discussing how to make method calls. This, of course, means a few new
ops, called <code>findmeth</code>, <code>callmeth</code> and <code>callccmeth</code> for the time
being. Jonathan Sillito had a few naming consistency issues with the
ops. Dan agreed there were issues and asked for suggestions for an
opcode naming convention.</p>
<p><a href='http://groups.google.com/groups?threadm=a05210601bafc74ec3036@' target='_blank'>groups.google.com</a>[192.168.0.78]</p>
<a name='Simple Constant Propagation in IMCC'></a><h2>Simple Constant Propagation in IMCC</h2>
<p>Matt Fowles posted a patch to add simple constant propagation to
IMCC. Essentially this means that, say</p>
<pre>    set I0, 5
    set I1, 2
    set I2, I1
    add I2, I0</pre>
<p>would compile as if it were:</p>
<pre>    set I0, 5
    set I1, 2
    set I2, 7</pre>
<p>Leo T&ouml;tsch liked the idea modified it slightly and added it to
the code base, but disabled. Apparently there are problems with it,
but it's a good starting framework. There need to be lots more tests
though...</p>
<p><a href='http://groups.google.com/groups?threadm=rt-22387-58435.10.9396178319999@rt.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Make mine SuperSized...'></a><h2>Make mine SuperSized...</h2>
<p>Bryan Warnock (in his own words) popped in to 'waffle on Parrot's core
sizes'. He proposed a way of drastically simplifying Parrot's type
system. He and Gopal V had a long discussion that I didn't quite
follow. I think Leo thinks that what Bryan proposes is doable, but I'm
not entirely sure whether he thinks it's a good idea...</p>
<p><a href='http://groups.google.com/groups?threadm=1054389285.2211.685.camel@wakko' target='_blank'>groups.google.com</a></p>
<a name='Register allocation in IMCC'></a><h2>Register allocation in IMCC</h2>
<p>Clint Pierce had some problems with IMCC's register allocation. He
posted an example that gave problems and wondered if the problem was
with him or with IMCC. Leo T&ouml;tsch confirmed that it was a
bug. Luke Palmer pointed Clint at <code>find_global</code> and friends as the
'correct' way to solve the problem. For bonus points, Clint showed of
a pathological example of why BASIC should not be anyone's favourite
language.</p>
<p><a href='http://groups.google.com/groups?threadm=5.1.0.14.2.20030601114720.01f2cec8@mail.geeksalad.org' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<a name='Cothreads'></a><h2>Cothreads</h2>
<p>As if the Coroutine thread wasn't confusing enough, we now have the
Cothread thread, in which Michael Lazzaro argued that we should blur
the distinctions between coroutines and threads. Dave Whipp pointed
everyone at 'Austin Hastings' draft for A17 (threads)' and argued
that, whilst Coroutines, threads, closures, and various other things
that Michael had argued were aspects of the same thing were related,
they sufficiently different that bundling them all up behind a single
class would lead to badness (&quot;a bloated blob with a fat interface&quot; was
the phrase he used).</p>
<p>This thread saw even more unrestrained speculation than usual and saw
the first use on the Perl 6 lists of the adjective 'Cozeny', from
Simon Cozens, possibly meaning &quot;feeling that what is being discussed
is over fussy and generally trying to take the language a <i>long</i> way
from what Real Programmers need&quot;. This would seem to imply a verb form
'to Cozen', &quot;To more or less forcibly express ones Cozeny feelings&quot;.</p>
<p>I'm afraid this was another thread I had a hard time following. I
reckon there's some interesting ideas in there, but I'm hoping that
someone will pull it all together in an RFC type document so I can go
&quot;Remember that Cothreads thread last week? Leon Brocard summarized it
all neatly in a single proposal, you can find it here.&quot; (Except it
almost certainly won't be Leon Brocard, it'll be Mike Lazzaro, Leon
doesn't seem to do perl6-language very much).</p>
<p><a href='http://groups.google.com/groups?threadm=8520E9CC-8FAB-11D7-92AB-000A277AA894@cognitivity.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://archive.develooper.com/perl6-language@perl.org/msg14771.html' target='_blank'>archive.develooper.com</a>
-- Austin Hastings on threads</p>
<a name='Compile time binding'></a><h2>Compile time binding</h2>
<p>In an effort to learn about Perl 6, Luke Palmer has been reading about
Haskell. For reasons he doesn't understand, this set him to wondering
what <code>::=</code> is supposed to mean -- it means 'compile time
binding', but what does <i>that</i> mean?</p>
<p>Damian Conway came through with the goods, summarizing his answer as
<code>::=</code> is to <code>:=</code> as a macro call is to a subroutine call.</p>
<p><a href='http://groups.google.com/groups?threadm=ygcel2j5p5r.fsf@babylonia.flatirons.org' target='_blank'>groups.google.com</a></p>
<a name='Threads and Progress Monitors'></a><h2>Threads and Progress Monitors</h2>
<p>Dave Whipp had some more thread questions, and wondered what would be
a good Perl 6ish way of implementing a threaded progress
monitor. Whilst the discussion of all this was interesting, I'm not
sure that it's really much to do with the language, more something
that one would implement according to taste and the particular
requirements of a given project.</p>
<p><a href='http://groups.google.com/groups?threadm=20030529174736.34522.qmail@onion.perl.org' target='_blank'>groups.google.com</a></p>
<a name='Exegesis 6 Status Update'></a><h2>Exegesis 6 Status Update</h2>
<p>Damian announced that Exegesis six is mostly written, and should be
undergoing final revisions while he and Larry are on the Perl
Whirl. Hopefully we'll see the Exegesis before YAPC::America::North.</p>
<p><a href='http://groups.google.com/groups?threadm=3EDA5C10.9020904@conway.org' target='_blank'>groups.google.com</a></p>
<a name='Acknowledgements, Announcements and Apologies'></a><h1>Acknowledgements, Announcements and Apologies</h1>
<p>Thanks once again are due to all the good people on the Perl 6
lists. Apologies will almost certainly be due to the organizers of
YAPC North America as I <i>still</i> haven't started writing the talks I'm
supposed to be giving.</p>
<p>As I noted last week, I'm awarding points (and points mean prizes) to
those kind people who spotted the deliberate mistake. Smylers gets 100
points for spotting the accidental mistake (last week was <i>not</i> in
2004.) Sam Smith, David Wheeler, David Cantrell and Leon Brocard all
earned 50 points for spotting the deliberate mistake of not mentioning
Leon Brocard. But they've helped me make up for it this week by
mentioning him twice, so the karmic balance is restored.</p>
<p>The points I have awarded can be redeemed for the following,
wonderful prizes:</p>
<ul>
<li><a name='1'></a>1</li>
<p>A lifetime subscription to the Perl 6 summaries.</p>
<li><a name='2'></a>2</li>
<p>Er...</p>
<li><a name='3'></a>3</li>
<p>That's it</p>
</ul>
<p>If you've appreciated this summary, please consider one or more of the
following options:</p>
<ul>
<li><a name='Send money to the Perl Foundation at donate.perl-foundation.org/ and help support the ongoing development of Perl.'></a>Send money to the Perl Foundation at
<a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> and help support the ongoing
development of Perl.</li>
<li><a name='Get involved in the Perl 6 process. The mailing lists are open to all. dev.perl.org/perl6/ and www.parrotcode.org/ are good starting points with links to the appropriate mailing lists.'></a>Get involved in the Perl 6 process. The mailing lists are open  to
all. <a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> and <a href='http://www.parrotcode.org/' target='_blank'>www.parrotcode.org</a>
are good starting points with links to the appropriate mailing lists.</li>
<li><a name='Send feedback, flames, money, photographic and writing commissions, or a patches to Camelbones making it possible to make Perl classes that inherit from Objective C classes (heck, if Ruby and Python can do it) to p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a>.'></a>Send feedback, flames, money, photographic and writing commissions, or
a patches to Camelbones making it possible to make Perl classes that
inherit from Objective C classes (heck, if Ruby and Python can do it)
to <i><a href='http://search.cpan.org/perldoc?<a href='mailto:p6summarizer@bofh.org.uk'>p6summarizer@bofh.org.uk</a>'>p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a></a></i>.</li>
</ul>
</div>
